Library virtualisation module

ABSTRACT

A library virtualisation module (LVM)  13  is disclosed, the LVM being configured to connect first and second hosts  11, 12  to a library  14.  The LVM comprises least two host input/outputs, each for connection to a respective host; and a library input/output, for connection to the library  14.  The LVM  13  is arranged to modify requests received at its host input/outputs and to provide modified requests to the library input/output in such a way as to divide resources of the library  14  between the hosts  11, 12  without requiring unmodified requests to take into account the division of resources.

FIELD OF THE INVENTION

[0001] This invention relates to a library virtualisation module, and toa library system including a library virtualisation module.

BACKGROUND OF THE INVENTION

[0002] A tape library, such as the ADIC Scalar 100 library, consists ofa housing in which is included a robot and a number of ‘elements’,namely a number of tape drivers, plural normal tape slots and at leastone import/export tape slot. Tape slots are typically tape receptaclesin the walls of the housing, and import/export slots are typicallyreceptacles in a door of the housing, which allow tapes to be introducedinto and taken from the library by a human user. Each tape drivetypically has a small computer serial interface (SCSI) connection to asingle host computer, which also sends SCSI signals to control the robotto move tapes between the tape slots and the tape drives. Tapelibraries, or more particularly the robot thereof, are able typically,in response to a request from the host, to determine what tapes itcontains in which slots, and to convey this information to the hostalong with information concerning the number of tape drives, normalslots and import/export slots that it has.

[0003] Conventionally, only one host has been able to use a library.However, Spectrologics and Quantum ATC both vend libraries which areable to be connected to plural hosts, enabling each host to use theresources of the library. Digital Interfaces Limited vend a systemallowing plural hosts to connect to a robot of a single library viarespective TA40 devices. The outputs of the TA40 devices are connectedtogether and to an input/output of the library. Each of thesearrangement is satisfactory.

SUMMARY OF THE INVENTION

[0004] According to a first aspect of this invention, there is provideda library virtualisation module (LVM), for connecting plural hosts to alibrary, the LVM comprising: at least two host input/outputs, each forconnection to a respective host; and a library input/output, forconnection to a library, the LVM being arranged to modify requestsreceived at its host input/outputs and to provide modified requests tothe library input/output in such a way as to divide resources of thelibrary between hosts without requiring unmodified requests to take intoaccount the division of resources.

[0005] This invention can allow connection of plural hosts to a singleconventional library, and can divide the resources of the librarybetween the hosts without the hosts knowing that they do not haveexclusive use of the library or knowing which of the resources of thelibrary are allocated to them. This is advantageous since existinglibraries can be divided between plural hosts with improvements inlibrary use efficiency. This may also allow, for use with plural hosts,the purchase of one, larger library rather than the purchase of pluralsmaller libraries, which may result in significant cost savings.Moreover, the invention may allow the use of conventional hosts, whichdo not need to use any commands other than conventional commands.

[0006] According to a second aspect of this invention, there is provideda library virtualisation module for connecting plural hosts to alibrary, the LVM comprising: at least two host input/outputs, each forconnection to a respective host; and a library input/output, forconnection to a library, the LVM being arranged to provide a libraryresources request at the library input/output and, subsequent to a replyreceived at the library input/output, to divide resources of the librarybetween the hosts.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] Embodiments of the invention will now be described, by way ofexample only, with reference to the accompanying drawings of which:

[0008]FIG. 1 is a schematic diagram of a library virtualisation module(LVM) in accordance with the invention connected to a library and toplural hosts, and

[0009]FIG. 2 is a schematic diagram of an alternative embodiment of LVM,in an alternative library system.

DESCRIPTION OF A PREFERRED EMBODIMENT

[0010] Referring to FIG. 1, a library system 10 is shown comprisinggenerally a first host 11 (host A), a second host 12 (host B), a libraryvirtualisation module (LVM) 13 and a library 14. Each host 11, 12 has a16 bit wide SCSI input/output which is connected via a respective SCSIconnection 17, 18 to a respective host input/output of the LVM 13. TheSCSI connector 17 of the first host 11 is also connected to a SCSIinput/output of a first tape drive 19, which forms part of the library14. Second and third tape drives 20, 21 (also forming part of thelibrary 14) are connected to a TA80 device 22, vended by DigitalInterfaces Limited. The TA80 device 22 is a type of multiplexer. It isable to duplicate data received at its input/output which is connectedto the second host 12, and to provide a copy of this data on each of itsinput/outputs which are connected to the tape drives 20, 21, oralternatively to only one of them. With data flow in the otherdirection, the TA80 device 22 may interleave data received at theinput/outputs which are connected to the tape drives 20, 21, and providethe interleaved data to the second host 12. In this case, the length ofthe data bursts of each interleave depends on, in particular, the sizeof the memory of the TA80 device 22. If data is being provided by onlyone of the drives 20, 21, this is passed directly to the second host.The TA80 device 22 connects both of the second and third tape drives 20,21 to the SCSI connector 18 of the second host 12, to allow datatransfer between the second host and each of the second and third tapedrives. The LVM 13 has an 16-bit SCSI connection to a robot 23, whichforms part of the library 14. The LVM 13 is also connected via a furtherSCSI connection to a graphical user interface (GUI) 24, which ispreferably a windows-driven laptop computer. The library 14, includingthe components within it, and the first and second hosts 11, 12 areentirely conventional devices.

[0011] The LVM 13 serves to divide the resources of the library 13,between the hosts 11 and 12. In this connection, ‘resources’ meansnormal slots and import/export slots, which are not shown in FIG. 1. Thetape drives 19-21 are also divided between the hosts 11, 12; this iseffected in part by the physical connection of the tape drives to thehosts, but the LVM 13 also has information concerning which tape drivesare assigned to which host. This division can be considered to be avirtual division since there is no physical separation of the resources.In this example, the library 14 has 45 normal slots and tenimport/export slots. A user instructs the LVM 13 through the GUI 24 toallocate, for example, normal slot numbers 0-14 and import/export slotnumbers 0-4 to the host 11, and to allocate normal slot numbers 15-44and import/export slot numbers 5-9 to the second host 12. The LVM 13stores information corresponding the elements of the library to anabsolute address for each host, for example, Host B-normal-slot 0 . . .29 Library-normal-slot 15 . . . 44 and so on.

[0012] The LVM 13 intercepts SCSI commands from the hosts 11, 12, andintercepts SCSI reply signals from the library 14 (more particularly, acontroller (not shown) of the robot 23). Most of these commands andsignals are passed through to the relevant input/output withoutmodification. There are, however, a number of exceptions to this.

[0013] When a host, for example the second host 12, sends a SCSI commandsignal known as ‘mode sense’, it expects the library 14 to reply withinformation detailing the number and start address (in absolute terms)of the robots, normal slots, import/export slots and tape drives thatthe library has. In fact, the mode sense signal is intercepted by theLVM 13, which then modifies the signal and forwards the modified signalonto the robot 23. The robot 23 responds with an SCSI response, whichindicates the number and absolute starting address of its robots, normalslots, import/export slots and tape drives, and this response isintercepted by the LVM 13. The LVM modifies the SCSI response torepresent the elements of the library 14 that are allocated to thesecond host 12. This modified response is an SCSI response which shows areduced number of tape drives, normal slots and import/export slots tothat of the response provided by the robot 23, although the absolutestart addresses remain unchanged, i.e. the absolute addresses begin atzero. It is possible to allow the host to believe that the startaddresses of the elements allocated to it (which the host believes to bethe entire resources of the library) are different to the actualaddresses, because address translation is performed by the LVM 13.

[0014] When a host, for example the second host 12, wants a tape movedbetween a tape drive and a slot, it issues a SCSI command, which is thenintercepted by the LVM 12. The LVM 13 modifies the command to change theslot and/or tape address used by the second host 12 to the correspondingslot and/or tape address stored in a memory (not shown) of the LVM. Forexample, if the second host 12 requests movement of a tape from tapedrive number 1 to normal slot number if the LVM 13 modifies the tapeaddress to number 2 and the normal slot address to number 26, sincethese are the corresponding addresses (the second host's tape drivesstart at 1 and its normal slots start at 15). The modified command isthen fed from the LVM 13 to the robot 23, which moves the tape in themanner requested. It will be seen that this results in only theresources of the library 14 which are allocated to the second host 12being affected, whereas it would have been a tape allocated to the firsthost 11 which would have been moved (and then to the wrong drive) if theLVM 13 had not modified the addresses in the SCSI command.

[0015] On completion of a tape movement task, the robot 23 signals thiscompletion to the LVM 13. If, in the meantime, the LVM 13 receives arequest from the other host 11, 12 to move a tape, the LVM modifies therequest as necessary, and places the modified request into a queue. Onlywhen the LVM 13 receives confirmation that the robot 23 has completedits original task does the LVM feed the later modified request to therobot. This feature allows all tape movement requests to be effected bythe robot 23 without the hosts 11, 12 having to communicate in any way.If other requests, such as mode sense requests, are made whilst therobot 23 is busy, these requests are also queued until the robot 23becomes free. If plural requests build in the queue, these are dealtwith in a first-in, first-out fashion.

[0016] Occasionally, a host 11, 12 may issue a ‘SCSI reset’ or‘re-initialise’ request, which would normally cause the robot 23 tore-initialise and to perform a check on all of the elements in thelibrary 14. However, the LVM 13 is arranged to block such requests, andto generate a confirmation command, which is then sent to the host 11,12 which made the request indicating that the reset has been completed.However, no reset command ever reaches the robot 23, so no reset isperformed in such circumstances. Resetting of the robot 23 is effectedonly by way of a reset command entered into the LVM 13 by way of the GUI24.

[0017] If a user opens the door of the library 14, the library detectsthis and sends a ‘unit attention’ command from the robot 23. Thiscommand is intercepted by the LVM 13, whereas conventionally is wouldhave been sent to the host. The ‘unit attention’ command indicates thatsome change, for example in the numbers and locations of tapes in thelibrary, may have taken place, although the library 14 cannot confirmthis without performing a re-initialise operation. The ‘unit attention’command is passed to the hosts 11, 12 only in response to a request fromthat host to access the library, for example a request to move a tapefrom a slot to a tape drive. The ‘unit attention’ command is stored inthe LVM 13 until both drives have made such an access request, and havetherefore been informed of the unit attention command, whereupon it isdeleted.

[0018] In an alternative embodiment (not shown), only two tape drivesare included in the library 14, with these tape drives being connectedon a one-to-one basis to the hosts 11, 12. It will be appreciated thatany number of tape drives may be connected to a given host.

[0019] A second library system 20 including a LVM according to theinvention is shown in FIG. 2. Referring to FIG. 2, the library system 30comprises first, second and third hosts 11, 12, 31, first and secondlibraries 14, 32, and an LVM 33. Each of the libraries 14, 32 includesfirst to third tape drives 19-21, 34-36, corresponding ones of which areconnected via a respective TA80 device 38-40 to a respective one of thehosts 11, 12, 31. Each host 11, 12, 31 is, therefore, connected to one,and only one, tape drive 19-21, 24-36 in each library 14, 32. Each host11, 12, 31 is also connected to a respective host input/output of theLVM 13. The LVM 13 has first and second library input/outputs, which areconnected to a robot 23 of the first library and a robot 37 of thelibrary respectively.

[0020] Operation of the LVM 33 is generally the same as that of the FIG.1 LVM, although the LVM 33 supports two additional operating modes:mirroring and data splicing. In mirroring mode, the LVM 33 controls therobots 23 and 37 to make the same movements. The TA80 devices 38-40duplicate data received at their respective inputs to each of theirrespective outputs. Provided the tape slots of the libraries areidentically stocked with tapes, this mode of operation results in dataprovided by a host 11, 12, 31 being stored on one tape in each of thelibraries 14, 32. Hence two copies of the data is made, and this isachieved without the knowledge of any of the hosts 11, 12, 31.

[0021] In data splicing mode, the TA80 devices 38-40 each divide dataprovided by their respective host 11, 12, 31 between the two tape drivesconnected to the TA80 device, i.e. half of the data is stored on a tapeof the first library 14 and half of the data is stored on a tape of thesecond library 32. This allows data to be stored on tape at up to twicethe maximum operating speed of the tape drives.

[0022] In an alternative embodiment (not shown), the LVM 33 is providedwith only one library input/output, which is connected to both of therobots 23, 37. In this embodiment, SCSI commands sent from the LVM 33contain a simple address, which allows each robot 23, 37 to determine ifthe commands are destined for it, or for another robot. Of course, morethan two libraries could be connected to a library input/output of anLVM 33.

[0023] The LVM 13 is arranged, following power-up or re-boot, to providea mode sense signal at the or each library input/output. In response,the or each library 14, 32 responds with data indicating the number oftape drives, normal slots and import/export slots that it has. The LVM13 then detects whether it should automatically divide the resources ofthe or each library 14, 32 on the basis of predetermined parametersstored internally, or whether it should take input from the GUI 24. Ifautomatic division is required, the LVM 13 divides the elements betweenthe hosts 11, 12, 31 equally. If the number of any particular element isnot divisible by the number of hosts to produce an integer, any extraelements (i.e. the difference between the actual number of elements andthe largest number which is less than the number of elements yet isdivisible by the number of hosts to provide an integer) are assigned tothe first host 11. Of course, other schemes may be used to automaticallydivide the resources of the library or libraries 14, 32 between thehosts 11, 12, 31.

[0024] If a user input is required, the LVM 13 does not divide theresources of the or each library 14, 32 until an input is received viathe GUI 24. A typical user input may be that the first host 11 is to beallocated ten normal slots and three import/export slots. The LVM 13then allocates the remaining resources to the other host 12, or, ifthere is more than one other host, divides the remaining resourcesbetween these other hosts.

[0025] Alternatively, the LVM 13 may be pre-programmed to divide theresources of the library or libraries 14, 32 in a more fixed manner,i.e. to allocate a certain number of slots to the first host, and toallocate any extra resources between the other host or hosts, instead ofdividing the resources equally. Because tape drives are connecteddirectly to the hosts themselves, the LVM 13 is either pre-programmedwith tape drive allocation information, or is arranged to require a userinput, which allows the LVM to allocate tape drives in a mannerconsistent with the way in which they are wired-up.

[0026] Since a mode sense request does not provide the LVM 13 with anyinformation concerning what slots are occupied and with what tapes, theLVM is operable, in response to a user input at the GUI 24, to provide aread element status request at the or each library input/output. Theresponse by the or each library 14, 32 is stored in the LVM 13 until ithas been supplied to each host 11, 12, 31, whereupon it is deleted.

[0027] TA40 devices, also vended by Digital Interfaces Limited, may beused in place of the TA80 devices for all of the above describedfunctions.

What is claimed is:
 1. A library virtualisation module (LVM), forconnecting plural hosts to a library, the LVM comprising: at least twohost input/outputs, each for connection to a respective host; and alibrary input/output, for connection to a library, the LVM beingarranged to modify requests received at its host input/outputs and toprovide modified requests to the library input/output in such a way asto divide resources of the library between hosts without requiringunmodified requests to take into account the division of resources.
 2. Alibrary virtualisation module as claimed in claim 1, which is arrangedto modify the absolute addresses of resources of the library accordingto the allocation of the resources to the hosts.
 3. A libraryvirtualisation module as claimed in claim 1, which is arranged to queuerequests received at the host input/outputs and to pass queued requeststo the library input/output only on determination that a previousrequest has been executed.
 4. A library virtualisation module as claimedin claim 1, further comprising a second library input/output.
 5. Alibrary virtualisation module as claimed in claim 4, which is arrangedto facilitate mirroring of data received at at least one of the hostinput/outputs.
 6. A library virtualisation module as claimed in claim 4,which is arranged to facilitate data splicing of data received at atleast one of the host input/outputs.
 7. A library virtualisation moduleas claimed in claim 1, which is arranged to block library reset requestsreceived at the host input/outputs.
 8. A library virtualisation moduleas claimed in claim 1, which is arranged to block library initialiserequests received at the host input/outputs.
 9. A library virtualisationmodule as claimed in claim 1, which is arranged to store unit attentionsignals received at its library input/output until representative datahas been supplied to each of the host input/outputs.
 10. A libraryvirtualisation module as claimed in claim 1, which is arranged to modifyaddress and/or quantity information, relating to library resources,received at its library input/output, and to provide the modifiedinformation to one of its host input/outputs.
 11. A libraryvirtualisation module (LVM) for connecting plural hosts to a library,the LVM comprising: at least two host input/outputs, each for connectionto a respective host; and a library input/output, for connection to alibrary, the LVM being arranged to provide a library resources requestat the library input/output and, subsequent to a reply received at thelibrary input/output, to divide resources of the library between thehosts.
 12. A library virtualisation module as claimed in claim 11, whichis arranged to divide automatically the resources between the hosts onthe basis of predetermined parameters.
 13. A library virtualisationmodule as claimed in claim 11, which is arranged to divide the resourcesbetween the hosts on the basis of a user command and predeterminedparameters.
 13. A library virtualisation module as claimed in claim 11,which is arranged, in response to a user request, to provide an elementstatus request at the library input/output.
 14. A library systemcomprising a LVM as claimed in claim 1, a library having a robotconnected to the library input/output of the LVM, and first and secondhosts connected to respective ones of the first and second hostinput/outputs.
 15. A library system comprising a LVM as claimed in claim11, a library having a robot connected to the library input/output ofthe LVM, and first and second hosts connected to respective ones of thefirst and second host input/outputs.